/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.hdasntvicpaul.view;

import com.hdasntvicpaul.view.util.TipoMensaje;
import javax.el.ELContext;
import javax.el.ExpressionFactory;
import javax.el.ValueExpression;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;

/**
 *
 * @author Gabriel Bran
 */
public abstract class AbstractPage {

    public void addMensaje(String titulo, String mensaje, TipoMensaje tipo) {
        if (tipo.equals(TipoMensaje.ADVERTENCIA)) {
            FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_WARN, titulo, mensaje));
        } else if (tipo.equals(TipoMensaje.ERROR)) {
            FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, titulo, mensaje));
        } else if (tipo.equals(TipoMensaje.INFORMACION)) {
            FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, titulo, mensaje));
        } else if (tipo.equals(TipoMensaje.ERROR_FATAL)) {
            FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_FATAL, titulo, mensaje));
        }
    }

    public AbstractPage() {
    }

    public Object getBean(String beanName) {
        FacesContext contexto = FacesContext.getCurrentInstance();
        ELContext elContext = contexto.getELContext();
        ExpressionFactory ef = contexto.getApplication().getExpressionFactory();
        ValueExpression ve = ef.createValueExpression(elContext, "#{" + beanName + "}", Object.class);
        return ve.getValue(elContext);
    }

    public abstract void limpiarCampos();
}